TCP/IP Registry Key Entries

This section documents the Windows 98 registry entries for TCP/IP.

Configuration settings for Microsoft TCP/IP are stored in the Registry as part of the protocol installation process. If Dynamic Host Configuration Protocol (DHCP) is used on the network, configuration information can also be provided by DHCP client service. DHCP-provided information is stored in the registry in binary format and cannot be altered by editing it. However, static information can be entered in the registry, which overrides DHCP default values.

TCP/IP Registry Entries in the MSTCP Subkey

The value entries are added to the following registry key:

HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \VxD\MSTCP

Descriptions of the TCP/IP values in the MSTCP are described in Table 31.18 (all data types are DWORD).

Table 31.18 TCP/IP registry entries

Value

Description

BroadcastAddress = broadcast address in hexadecimal

Specifies the address to use for NetBIOS name query broadcasts. The default is based on the Internet Protocol (IP) address and the subnet mask.

BcastNameQueryCount = integer

Specifies the number of times the system will retry NetBIOS name query broadcasts. The default is 3.

BcastQueryTimeout = milliseconds

Specifies the period of time the system will wait before timing out broadcast name queries. The minimum value is 100. The default is 750.

BSDUrgent = 0 or 1

If this value is 1, it specifies that Microsoft TCP/IP is to treat urgent data the way some UNIX systems do (with a maximum of 1 byte of urgent data, for example). If this value is 0, it specifies that the stack is to handle urgent data as specified by RFC 1122. The default is 1.

CacheTimeout = milliseconds

Specifies how long NetBIOS names are cached. The minimum is 60,000 milliseconds (1 minute). The default is 360,000 milliseconds (6 minutes).

DeadGWDetect = 0 or 1

Specifies whether Microsoft TCP/IP will use another gateway if the current default gateway seems to be down. The default is 1.

DefaultRcvWindow = 16-bit number

Specifies the default receive window advertised by TCP. The default is 8192.

DefaultTOS = 8-bit number

Specifies the default type of service (TOS) for IP packets initiated by Microsoft TCP/IP. The default is 0.

DefaultTTL = 8-bit number

Specifies the default time to live (TTL) for IP packets initiated by Microsoft TCP/IP. The default is 128.

DnsServerPort = port

Specifies which DNS server port to send queries to when resolving a name using DNS. The default is 53.

EnableProxy = 0 or 1

If this value is 1, it specifies that this computer is a Windows Internet Naming Service (WINS) proxy agent. The default is 0.

EnableRouting = 0 or 1

Specifies whether to enable static routing. Microsoft TCP/IP does not supply a routing protocol, so all route table entries must be entered using the route command. The default is 0.

IGMPLevel = 0, 1, or 2

Specifies the level of support allowed for IP multicast, corresponding to the levels in RFC 1112. The default is 2.

InitialRefreshT.O. = milliseconds

Specifies the interval over which to contact WINS to refresh the name. The minimum is 16 minutes, and the maximum is approximately 50 days (0xFFFFFFFF). The default is 960,000 milliseconds (16 minutes).

KeepAliveTime = 32-bit number

Specifies the connection idle time in milliseconds before TCP will begin sending keepalives, if keepalives are enabled on a connection. The default is 2 hours (7,200,000 milliseconds).

KeepAliveInterval = 32-bit number

Specifies the time in milliseconds between retransmissions of keepalives, once the KeepAliveTime has expired. Once KeepAliveTime has expired, keepalives are sent every KeepAliveInterval milliseconds until a response is received, up to a maximum of MaxDataRetries before the connection is aborted. The default is 1 second (1000 milliseconds).

LmhostsTimeout = milliseconds

Specifies the period of time the system will wait before timing out when seeking LMHOSTS for name resolution. The minimum value is 1000 milliseconds (1 second). The default is 10,000 milliseconds (10 seconds).

MaxConnections = 32-bit number

Specifies the maximum number of concurrent connections. The default is 100.

MaxConnectRetries = 32-bit number

Specifies the number of times a connection attempt (SYN) will be retransmitted before giving up. The initial retransmission timeout is 3 seconds, and it is doubled each time up to a maximum of 2 minutes. The default is 3.

MaxDataRetries = 32-bit number

Specifies the maximum number of times a segment carrying data or FIN will be retransmitted before the connection is aborted. The retransmission timeout itself is adaptive and will vary according to link conditions. The default is 5.

NameServerPort = port

Specifies the User Datagram Protocol (UDP) port on the name server to which to send name queries or registrations. The default is 137.

NameSrvQueryCount = integer

Specifies the number of times the system will try to contact the WINS server for NetBIOS name resolution. The default is 3.

NameSrvQueryTimeout = milliseconds

Specifies how long the system waits before timing out a name server query. The minimum is 100 milliseconds. The default is 750 milliseconds.

NameTableSize = integer

Specifies the maximum number of names in the NetBIOS name table. The minimum allowable value is 1 and the maximum is 255. The default is 17.

NodeType = 1, 2, 4, or 8

Specifies the mode of NetBIOS name resolution used by NetBIOS over TCP/IP, where 1 = b-node, 2 = p-node, 4 = m-node, and 8 = h-node. This value can be configured using DHCP. The default is 1 (b-node) if no value is specified; if WINS servers are specified and NodeType is not, the default is 8 (h-node).

PMTUBlackHoleDetect = 0 or 1

Specifies whether the stack will attempt to detect Maximum Transmission Unit (MTU) routers that do not send back Internet Control Message Protocol (ICMP) fragmentation-needed messages. Setting this parameter when it is not needed can cause performance degradation. The default is 0.

PMTUDiscovery = 0 or 1

Specifies whether Microsoft TCP/IP will attempt to perform path MTU discovery as specified in RFC 1191. The default is 1.

RandomAdapter = 0 or 1

For a computer with multiple network adapters, specifies whether to respond with an IP address selected randomly from the set of addresses on the computer or whether to return the IP address of the adapter that the request came in upon. The default is 0 (not random; that is, return the address of the adapter that the request came in upon).

RoutingBufSize = 32-bit number

Specifies the total amount of buffer space to allocate for routing packets. This parameter is ignored if EnableRouting=0. The default is 73,216.

RoutingPackets = 32-bit number

Specifies the maximum number of packets that can be routed simultaneously. This parameter is ignored if EnableRouting=0. The default is 50.

SessionKeepAlive = milliseconds

Specifies how often to send session keepalive packets on active sessions. The minimum is 60 seconds. The default is 3,600,000 milliseconds (1 hour).

SessionTableSize = integer

Specifies the maximum number of sessions in the NetBIOS session table. The minimum allowable value is 1 and the maximum is 255. The default is 255.

SingleResponse = 0 or 1

For a computer with multiple network adapters, specifies whether to send all IP addresses on a name query request from WINS. If this value is 1, the system will send one address in a name query response; if 0, it will return all the addresses of its adapters. The default is 0.

Size/Small/Medium/Large = 1, 2, or 3

Specifies how many buffers of various types to pre-allocate and the maximum that can be allocated, where 1 = small, 2 = medium, and 3 = large. The default is 1; the default is 3 if the WINS proxy is enabled.

TCP/IP Registry Entries in the MSTCP\ServiceProvider Subkey

This section describes variables for subkeys that appear in the following registry key:

HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \VxD \MSTCP \ServiceProvider

The Class and ProviderPath values are used by the service resolution and registry APIs in Windows Sockets. The Class parameter indicates that TCP/IP is a name service provider, and its binary value (8) should not be changed. The ProviderPath parameter is a string that defines the location and file name for the 32-bit Windows Sockets DLL (the default is %windir%\system\wsock32.dll).

The following keys describe the order used to resolve host names. A lower number sets a higher priority for name resolution. These settings are used for 16-bit Windows Sockets, which need to rely on the resolvers that are expected to take the least time. The numbers indicate the default values specified in Windows 98.

LocalPriority = 0x1F3 (499)
HostsPriority = 0x1F (500)
DNSPriority = 0x7D0 (2000)
NetbtPriority = 0x7D1 (2001)

TCP/IP Registry Entries in the NetTrans Subkey

The entries in this section must be added to the following registry key, where n represents the particular TCP/IP-to-network adapter binding.

HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Class \netTrans \000n

Value

Data type

Description

 

 

 

 

 

 

 

 

 

 

 

MaxMTU = 16-bit integer

DWORD

Specifies the maximum size datagram IP that can pass to a media driver. Subnetwork Access Protocol (SNAP) and source routing headers (if used on the media) are not included in this value. For example, on an Ethernet network, MaxMTU will default to 1500. The actual value used will be the minimum of the value specified with this parameter and the size reported by the media driver. The default is the size reported by the media driver; an Ethernet network defaults to 1500 bytes and a Point-to-Point (PPP) Protocol dial-up connection defaults to 576 bytes.

ZeroBroadcast = 0 or 1

String

If this parameter is set to 1, then IP will use zeros-broadcasts (0.0.0.0.) instead of ones-broadcasts (255.255.255.255). Most systems use ones-broadcasts, but some systems derived from BSD implementations use zeros-broadcasts. Interoperation will not work well on the same network for systems that use different broadcasts. Valid Range 0 or 1 (false or true); Default: 0

Changing TCP/IP Node Types

The TCP/IP node type can be manually changed by editing the Windows 98 registry. The location is under the HKEY_LOCAL_MACHINE key under the following subkey:

\System\CurrentControlSet\Services\VxD\MSTCP\NodeType

The four TCP/IP node types are defined by number:

Number

Node Type

Description

 

 

 

 

 

 

 

 

 

 

 

1

b-node

Broadcast only

2

p-node

WINS only

4

m-node

Broadcast, then WINS

8

h-node

WINS, then broadcast

The default Windows 98 TCP/IP node types are:

Troubleshooting the Registry

This section provides some tips for troubleshooting registry problems, and for troubleshooting your system using the registry.

Understanding Operating System Load and Desktop Initialization

Understanding this phase of the boot process can help when you need to troubleshoot registry and operating system problems.

The Windows 98 operating system load sequence is as follows:

Sequence

Component

Description

 

 

 

 

 

 

 

 

 

 

 

1

Registry

Base system information

2

System.ini

Legacy system configuration

3

Kernel32.dll

Main operating system code

4

Gdi.exe and Gdi32.dll

Graphical device interface; graphics engine

5

User.exe and User32.exe

Code for managing the user interface including the window manager

6

Resources and fonts

 

7

Win.ini

Legacy system program and user configuration

The Windows 98 desktop initialization sequence is as follows:

1.      The Windows shell loads and machine policies are enforced.

2.      The desktop components load.

3.      If connected to a network, a logon prompt appears. Once the user is logged on, the logon scripts are carried out and policies are enforced for the user.

4.      Once the user logs on, the system can process user-specific configuration information and load any user-specific policy files. If the user does not log on, default settings are used to determine user preferences. If network logon is set, the user is logged on to the network during this process.

Troubleshooting Registry Startup Errors

Accessing system registry.

When you start Windows 98, you receive one of the following error messages:

Windows encountered an error accessing the system Registry. Windows will restart and repair the system Registry for you now.

Windows 98 will restart your computer and run Registry Checker in MS-DOS mode (Scanreg.exe) to fix the problem.

Not enough memory.

When you start Windows 98, you receive the following error message:

Windows was unable to process the registry. This may be fixed by rebooting to Command Prompt Only and running SCANREG /FIX. Otherwise there may not be enough conventional memory to properly load the registry.

If you see this message after you run ScanReg /Fix, then you need to free up conventional memory in your computer.

Error When Removing a Program with Add/Remove Programs

When you remove a program using the Add/Remove Programs option in Control Panel, you receive the following error message:

An error occurred while trying to remove <Program Name>.
Uninstallation has been canceled.

This error can occur if you have manually deleted a program that is listed in the Install/Uninstall list in the Add/Remove Programs Properties dialog box. To remove a program from the Install/Uninstall list, delete the appropriate key under the following registry key:

HKEY_LOCAL_MACHINE \Software \Microsoft \Windows \CurrentVersion \Uninstall

Windows 98 Cannot Find a Needed Device File

When you start Windows 98, you receive an error message telling you that Windows 98 cannot find a device file that may be needed to run Windows or a Windows-based application. Sometimes a specific file name is specified.

This error message can occur for either of the following reasons:

To resolve this problem, follow each step below until the error no longer occurs:

1.      If you recently removed a program or component, reinstall the program or component, then run the uninstall program if one is available. If no uninstall program is available for the program or component, contact the manufacturer to obtain instructions on uninstalling.

2.      If the missing device driver has a .386 extension, disable the line referring to this device driver in the System.ini file by placing a semicolon (;) at the beginning of the line.

For example, if the line referencing the missing device driver reads:

device=Example.386

change the line to read:

;device=Example.386

3.      If the missing device driver has a .vxd extension, it is a driver designed for use with Windows 98 and is referenced in the registry. In most cases, a program or component with drivers designed for use with Windows 98 will also be listed in the Add/Remove Programs option in Control Panel. Following the instructions in step 1 should correct the problem.

If the error occurs after following the instructions in step 1, you need to locate the value that references the missing device driver in the registry, and delete that registry value.

If a specific device driver is not named in the error message, one of the StaticVxD values in the registry is probably blank or contains only spaces. The StaticVxD values are located in the registry keys below the following key:

HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \VxD

Use Registry Editor to locate and delete any StaticVxD value in the registry that contains invalid data, is blank, or contains only spaces.

When Windows 98 starts, the System.ini file and the registry are read to obtain a list of device drivers to load. When Windows 98 cannot locate a virtual device driver that it is attempting to load, an error message is generated.

Virtual device drivers are files required by various programs to communicate with your computer's hardware.

The following sample registry key contains a StaticVxD value:

HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \VxD \COMBUFF

The data for this StaticVxD value is "*COMBUFF" (without the quotation marks; the quotation marks appear in Registry Editor, but are not part of the VxD name). The asterisk (*) preceding the VxD name indicates that the VxD is internal to the Vmm32.vxd file. If the VxD referenced by the StaticVxD value is not internal to the Vmm32.vxd file, its name is not preceded by an asterisk and typically has a .vxd extension.

Additional Resources

For more information about

See this resource

 

 

 

 

 

 

 

 

Windows 98 registry

Inside the Microsoft Windows 98 Registry by Günter Born

Windows NT registry

The Microsoft Windows NT Workstation Resource Kit
The Microsoft Windows NT Server Resource Kit

Programming the registry

The Microsoft Windows 98 Software Development Kit
Win32 Software Development Kit for Windows 98 and Windows NT